#pragma once
#include "predef.h"

namespace CA
{
	class CAAPI Console
	{
	public:
		static boost::signal<void()> OnRequestInit;
		static boost::signal<void()> OnRequestShow;
		static boost::signal<void()> OnRequestCls;
		static boost::signal<void()> OnRequestHide;
		static boost::signal<void()> OnRequestShutdown;
		static boost::signal<void(const std::string& msg)> OnRequestWriteLine;
		static boost::signal<void(const std::string& cmd)> OnRequestEval;
// 		static boost::signal<std::string(void)> OnGetClipboardData;
// 		static boost::signal<void(const std::string&)> OnSetClipboardData;

	public:
		static void Init();
		static void Show();
		static void Hide();
		static void Cls();
		static void Shutdown();
		static void Eval(const std::string& cmd);
		static void Print(const std::string& msg);
// 		static std::string GetClipboardData();
// 		static void SetClipboardData(const std::string&);
	};
}